home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 2 (1981)(Micro Ink).zip / Micro on the Apple Volume 2 (1981)(Micro Ink).do / SEARCH.bas < prev    next >
BASIC Source File  |  1996-12-24  |  2KB  |  43 lines

  1. 1  REM  ************************
  2. 2  REM  *                      *
  3. 3  REM  * STRING SEARCH ROUTINE*
  4. 4  REM  *     GARY LITTLE      *
  5. 5  REM  *                      *
  6. 6  REM  *  COPYRIGHT (C) 1981  *
  7. 7  REM  *    MICRO INK, INC.   *
  8. 8  REM  * CHELMSFORD, MA 01824 *
  9. 9  REM  *  ALL RIGHTS RESERVED *
  10. 10  REM *                      *
  11. 11  REM ************************
  12. 12  REM 
  13. 14  REM 
  14. 15  PRINT "<CTRL-D>BLOAD STRING SEARCH"
  15. 100 S$ = "": REM  MUST BE FIRST DEFINED SIMPLE VARIABLE
  16. 110 N = 2000: DIM R$(N): REM  MUST BE FIRST DEFINED ARRAY VARIABLE 
  17. 120  GOSUB 1000: REM  LOAD SEARCH ROUTINE
  18. 130  DEF  FN MD(X) = X -256 * INT(X/256)
  19. 140  TEXT : HOME : PRINT  TAB( 8);: INVERSE : PRINT "STRING ARRAY SEARCH DEMO": NORMAL 
  20. 150  PRINT : PRINT "RANDOM STRINGS:": PRINT 
  21. 160  FOR I = 1 TO N:R$(I) =  CHR$(65 +26 * RND(1)) + CHR$(65 +26 * RND(1)): PRINT R$(I);" ";: NEXT I: PRINT : PRINT 
  22. 170  INPUT "ENTER SEARCH STRING: ";S$: PRINT 
  23. 180 SV = AV:C = 1
  24. 190 SV =  PEEK(105) +256 * PEEK(106)
  25. 200 AV =  PEEK(107) +256 * PEEK(108)
  26. 210  POKE 0, PEEK(SV +2): POKE 6, PEEK(SV +3): POKE 7, PEEK(SV +4)
  27. 220  POKE 30, FN MD(C): POKE 31, INT(C/256)
  28. 230  POKE 28, FN MD(N): POKE 29, INT(N/256)
  29. 240  POKE 8, FN MD(AV +7 +3 *C): POKE 9, INT((AV +7 +3 *C)/256)
  30. 250  CALL 768
  31. 260 C =  PEEK(30) +256 * PEEK(31)
  32. 270  IF C >N  THEN 300
  33. 280  PRINT S$;" MATCHES #";C;" (PHRASE: ";R$(C);")"
  34. 290 C = C +1: IF C < = N  THEN 190
  35. 300  PRINT : PRINT "MACHINE LANGUAGE SEARCH COMPLETED"
  36. 310  PRINT : INPUT "PRESS 'RETURN' FOR APPLESOFT SEARCH: ";A$: PRINT 
  37. 320  FOR I = 1 TO N
  38. 330  IF S$ =  LEFT$(R$(I), LEN(S$))  THEN  PRINT S$;" MATCHES #";I;" (PHRASE: ";R$(I);") "
  39. 340  NEXT I: PRINT : PRINT "APPLESOFT SEARCH COMPLETED": END 
  40. 1000  FOR I = 768 TO 849: READ X: POKE I,X: NEXT I: RETURN 
  41. 1010  DATA  32,74,255,160,0,177,8,133,1,200,177,8,133,26,200,177,8,133,27,165,1,197,0,48,15,160,0,177,6,209
  42. 1020  DATA  26,208,7,200,196,0,240,16,208,243,165,30,197,28,208,11,165,31,197,29,208,5,230,31,76,63,255,24,165,8
  43. 1030  DATA  105,3,144,2,230,9,133,8,24,165,30,105,1,144,2,230,31,133,30,56,176,177